Recently, advancement in mobile communication technology rapidly promotes popularization of mobile communication terminals to change lift style of people so that most of ordinary people always carries mobile communication terminals such as handheld terminals, PDAs, smartphones, etc. Mobile communication terminals allow user to access to communication networks more easily, and system sources of traditional communication systems to be efficiently distributed.
Among such techniques, a streaming service that may receive and play multimedia contents such as audio content and video content in real time through wireless content communication networks while users carrying mobile communication terminals moves is provided. The streaming service applied to a wired IPTV is provided in the form where multimedia content is combined with RTP (Real-time Transport Protocol) or RTP and MEPG-2.
However, in the case of a wireless streaming service, when the streaming service is provided in the form of RTP or in the combined form of RTP and MPEG-2, problems may be caused. First, since RTP does not support multiplexing, when multimedia content is divided into a plurality of packets and then transmitted, a plurality of ports according to the plurality of packets should be opened, and particularly, in a point where a firewall is installed, the streaming service may not normally be provided.
Secondly, RTP operates on UDP, and after UDP divides multimedia content into a plurality of packets and transmits the plurality of packets to a receiving side, UDP does not confirm whether the transmitted packets arrive at the receiving side in the correct sequence. For such a reason, loss of packet may be generated, and when the loss of packet is generated, since UDP does not retransmit the lost content packet to the receiving side, the loss of content may be caused. Therefore, in the case of mobile communication terminals such as smartphones, a method of providing the streaming service using HTTP (Hyper Text Protocol) operating on TCP is typically used. This is generally called “HTTP streaming”.
HTTP is generally a protocol used for transmitting texts and images such as hyper texts. So, in the case of providing a multimedia content streaming service using HTTP at a mobile communication terminal such as a smartphone, since the volume of multimedia content is large, the streaming service may not be provided in real time. Then, description on an internal structure of a system for a HTTP streaming service will be made in more detail with reference to FIG. 1.
FIG. 1 is a block diagram schematically illustrating an internal structure of a system for a HTTP streaming service in a multimedia system.
Referring to FIG. 1, the system for a HTTP streaming service may be configured to include a server 101 and a client, or may be configured to further include a storing unit 103 and a buffer 104. The server 101 may divide multimedia content for streaming into a plurality of segments having the same size or different sizes. First, a case where the server 101 divides multimedia content into a plurality of segments for streaming in the same size will be described. The server 101 may generate and store a plurality of segments by dividing multimedia content for streaming in the unit of 2 seconds. At this time, the same multimedia content may have different versions according to the type of bit transmission rate, resolution, encoding codec, etc., which may be expressed as “representation”.
For example, when there exists a version in which a playback time of multimedia content is 90 minutes, and bit transmission rate corresponding to content information is 75 kbps, 150 kbps or 300 kbps, the server 101 may divide the multimedia content having the playback time of 90 minutes into 2700 segments by dividing the multimedia content in the unit of two seconds according to the respective versions. Since the 2700 segments may have different versions according to the types of bit transmission rate, resolution, and encoding codec, the server 101 divides the multimedia content into total 8100 segments.
Secondly, a case where the server 101 divides multimedia content into a plurality of segments for streaming in different sizes will be described. For example, when there exists a version in which a playback time of multimedia content is 90 minutes, and bit transmission rate corresponding to content information is 75 kbps, 150 kbps or 300 kbps, the server 101 may divide the multimedia content into a plurality of segments by dividing the multimedia content in unit of 2 seconds during a playback period of from 0 to 3 minutes, and may divide the multimedia content into a plurality of segments by dividing the multimedia content in unit of 4 seconds during a playback period of from 3 minutes to 4 minutes.
The server 101 which has divided the multimedia content into a plurality of segments assigns URL information to the plurality of divided segments, stores the assigned URL information on each of the plurality of divided segments in a media information file, and then transmits the stored URL information to a client 102. At this time, the media information file may be called various names, such as “MPD (Media Presentation Description)”, “Manifest file” or the like according to the standardization organization which standardizes HTTP streaming.
The server 101 may sense that the client 102 initiates a streaming service. In the case where the server 101 senses that the client 102 initiates a streaming service, the server 101 transmits the media information file storing the URL information on the segments to the client 102 through a buffer 104. The server 101 receives a segment transmission request message by the client 102, receives segments corresponding to the segment URL information included in the segment transmission request message from the storing unit 103, and transmits the received segments. Herein, the segment transmission request message includes information used for retrieving a segment, for example, URL information and version.
The client 102 may initiate a streaming service. In the case where the client 102 initiates a streaming service, the client 102 receives the media information file including URL information on segments from the server 101. Also, the client 102 may sense a network transmission environment and may transmit to the server 101 the segment request message requesting a segment to be outputted according to the network transmission environment. At this time, the client 102 transmits to the server 101 the URL information of a segment intended to output, in a state that the URL information is included in the segment request message.
The storaging unit 103 receives the segments divided by the server 101 and stores the received segments in corresponding to content information and time. Also, when the server 101 receives a segment request message from the client 102, the storaging unit 103 retrieves a segment corresponding to the received URL to the server 101. When the server 101 divides multimedia content into predetermined periods that are the same as or different from each other and then stores the divided periods in the storing unit 103 for a HTTP streaming service, description on an internal structure of the storing unit 103 will be made in more detail with reference to FIGS. 2 and 3.
FIG. 2 is a block diagram illustrating an example that multimedia content is divided into a plurality of segments having the same size for a HTTP streaming service and then stored, and FIG. 3 a block diagram illustrating an example that multimedia content is divided into a plurality of segments in different sizes for a HTTP streaming service and then stored.
The server 101 may divide multimedia content for streaming into a plurality of segments in the same size or different sizes. First, a case where the server 101 divides multimedia content into a plurality of segments for streaming in the same size will be described with reference to FIG. 2. For example, when there are versions of multimedia content in which a playback time of the multimedia content is 90 minutes, bit transmission rates corresponding to content information are 500 kbps, 1 Mbps and 2 Mbps, and resolutions are SD, 720P, and HD, the server 101 may divide the multimedia content having the playback time of 90 minutes into 2700 segments by dividing the multimedia content in unit of 2 seconds according to the respective versions.
That is, the segments including content of from 0 to 2 seconds consist of a segment 203 having a bit transmission rate of 500 kbps and a resolution of SD, a segment 204 having a bit transmission rate of 1 Mbps and a resolution of 720P, and a segment 205 having a bit transmission rate of 2 Mbps and a resolution of HD, and the remaining segments may be divided in unit of 2 seconds into total 2700 segments. That is, the server 101 generates segments proportional to the number of versions according to the content information, respectively. Therefore, in the case where URL information corresponding to the large amount of segment is included in a media information file, the size of the media information file becomes large and thus the media information file may not be provided to the client 102 in a rapid speed.
Secondly, a case where the server 101 divides multimedia content into a plurality of segments for streaming in different sizes will be described with reference to FIG. 3. For example, when there are versions of multimedia content in which a playback time of the multimedia content is 90 minutes, bit transmission rates corresponding to content information are 500 kbps, 1 Mbps and 2 Mbps, and resolutions are SD, 720P, and HD, the server 101 may divide the multimedia content having the playback time of 90 minutes into 2700 segments by dividing the multimedia content in unit of 2 seconds according to the respective versions.
That is, the segments including content of from 0 to 3 seconds consist of a segment 303 having a bit transmission rate of 500 kbps and a resolution of SD, a segment 304 having a bit transmission rate of 1 Mbps and a resolution of 720P, and a segment 305 having a bit transmission rate of 2 Mbps and a resolution of HD, and the segments including content of from 3 seconds to 5 seconds consist of a segment having a bit transmission rate of 500 kbps and a resolution of SD, a segment 306 having a bit transmission rate of 1 Mbps and a resolution of 720P, and a segment 307 having a bit transmission rate of 2 Mbps and a resolution of HD.
That is, the server 101 generates segments proportional to the number of versions according to the content information. Therefore, in the case where URL information corresponding to the large amount of segment is included in a media information file, the volume of the media information file becomes large and thus the media information file may not be provided to the client 102 in a rapid speed.
The client 102 may initiates a streaming service. In the case where the client 102 initiates a streaming service, the client 102 receives the media information file including URL information on segments from the server 101. At this time, when a network transmission environment between the server 101 and the client 102 is not good, a downloading time of the media information file from the server 101 by the client 102 is long, and thus an initial transmission delay is caused until the playback start point.
Also, when the volume of the media information file received from the server 101 by the client 102 is large, the receiving time is long and thus content at the point when the content is not yet received may not be played, so that the content may not be played in a fast forward mode, a skip mode, or the like. Moreover, as the playback time of multimedia content for streaming is lengthened, i.e., the volume of multimedia content increases, the number of divided segments increases, thus a large volume of storing unit capable of a large amount of segments is required, and the use of the large volume of storing unit requires high production costs in configuring the system.